//+-+-+-+-+
//|N|C|O|M|
//+-+-+-+-+---------------------------- Copyright 2009 scott a dixon [archxs] -+
//|                                                                            |
//| This file is part of the NanoCOM project <http://code.google.com/p/ncom/>. |
//|                                                                            |
//| Nano COM is free software: you can redistribute it and/or modify           |
//| it under the terms of the GNU Lesser General Public License as published   |
//| by the Free Software Foundation, either version 3 of the License, or       |
//| (at your option) any later version.                                        |
//|                                                                            |
//| Nano COM is distributed in the hope that it will be useful,                |
//| but WITHOUT ANY WARRANTY; without even the implied warranty of             |
//| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              |
//| GNU Lesser General Public License for more details.                        |
//|                                                                            |
//| You should have received a copy of the GNU General Public License          |
//| along with the Nano COM source.  If not, see                               |
//| <http://www.gnu.org/licenses/>.                                            |
//|                                                                            |
//+----------------------------------------------------------------------------+
#ifndef PLATFORMGENERIC_H_
#define PLATFORMGENERIC_H_
/**
 * Generic implementation, definitions, and datatypes. This header creates dependencies
 * on the C standard library.
 */
//+----------------------------------------------------------------------------+
//| INCLUDES                                                                   |
//+----------------------------------------------------------------------------+
#include <cstring>

//+----------------------------------------------------------------------------+
//| GENERIC DEFINITIONS                                                        |
//+----------------------------------------------------------------------------+
/**
 * {@link HRESULT} signaling a successful method call. Conforms to the MS open
 * specification for the HRESULT datatype.
 * @see http://msdn.microsoft.com/en-us/library/cc230330(PROT.10).aspx
 */
#define S_OK 0x0000

//+----------------------------------------------------------------------------+
//| GENERIC IMPLEMENTATION                                                     |
//+----------------------------------------------------------------------------+
static bool NCOM_FORCE_INLINE compareGuid(const GUID& inLeft, const GUID& inRight)
{
    return (memcmp(&inLeft,&inRight,sizeof(GUID))==0);
}

#endif /* PLATFORMGENERIC_H_ */
